home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 7 / Apprentice-Release7.iso / Source Code / Libraries / Aidan's Class Libraries / Source / Layout Classes / Controls.cpp next >
Encoding:
Text File  |  1997-07-19  |  1.3 KB  |  63 lines  |  [TEXT/CWIE]

  1. //Copyright (c) 1997 Aidan Cully
  2. //All rights reserved
  3.  
  4. #include "CLControl.h"
  5. #include "CLMouseHandler.h"
  6. #include "CLBaseWindow.h"
  7.  
  8. TControl::TControl( TLayoutBranch *super ):
  9.     TLayoutLeaf( super )
  10. {
  11. }
  12.  
  13. Boolean TControl::HandleMouseSelf( TMouseButtonEvent *event )
  14. {
  15.     Rect contentRect;
  16.     Boolean prevIn;
  17.     EventRecord ev;
  18.  
  19.     if( event->button ) {
  20.         mWindow->GetDrawFocus();
  21.         contentRect = GetRect();
  22.         prevIn= PtInRect( event->where, &contentRect );
  23.         if( prevIn )
  24.             TrackMouseDown( event );
  25.         do {
  26.             ::WaitNextEvent( 1|mDownMask|mUpMask, &ev, 0, 0 );
  27.             event->where= ev.where;
  28.             mWindow->GlobalToLocal( &event->where );
  29.             event->when= ev.when;
  30.             if( ev.what!= mouseUp ) {
  31.                 if( PtInRect( event->where, &contentRect ) != prevIn ) {
  32.                     prevIn = !prevIn;
  33.                     TrackMouseChange( event, prevIn );
  34.                 }
  35.                 if( prevIn )
  36.                     TrackMouseWithin( event );
  37.             }
  38.         } while( ev.what!= mouseUp );
  39.         if( PtInRect( event->where, &contentRect ) )
  40.             TrackMouseUp( event );
  41.         else if( prevIn )
  42.             TrackMouseChange( event, !prevIn );
  43.         mWindow->ReleaseDrawFocus();
  44.         return( true );
  45.     }
  46.     return( false );
  47. }
  48.  
  49. void TControl::TrackMouseChange( TMouseEvent *event, Boolean inside )
  50. {
  51. }
  52.  
  53. void TControl::TrackMouseWithin( TMouseEvent *event )
  54. {
  55. }
  56.  
  57. void TControl::TrackMouseUp( TMouseEvent *event )
  58. {
  59. }
  60.  
  61. void TControl::TrackMouseDown( TMouseEvent *event )
  62. {
  63. }